package cn.stu.system.controller;


import cn.stu.common.utils.ApiData;
import cn.stu.framework.dto.RoleDto;
import cn.stu.framework.service.RoleMenuService;
import cn.stu.framework.vo.rolemenu.RoleMenuVo;
import cn.stu.system.annotation.LogAnnotation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;


/**
 * 角色菜单控制器
 *
 * @author 郑志豪
 * @date 2023/09/18
 */
@RestController
@RequestMapping("/roleMenu")
@AllArgsConstructor
public class RoleMenuController {
    /**
     * 服务
     */
    private RoleMenuService rmService;

    /**
     * 列表
     *
     * @param dto DTO
     * @return {@link ApiData}
     */
    @GetMapping(value = "/list")
    public ApiData list(RoleDto dto) {
        return rmService.roleMenuList(dto);
    }

    /**
     * 删除权限
     *
     * @param roleId 角色ID
     * @return {@link ApiData}
     */
    @LogAnnotation("删除角色权限")
    @DeleteMapping(value = "/del/{roleId}")
    public ApiData del(@PathVariable Long roleId) {
        return rmService.roleMenuDel(roleId);
    }


    /**
     * 信息
     *
     * @param rmId RM ID
     * @return {@link ApiData}
     */
    public ApiData info(@RequestParam(value = "rmId", required = false) Long rmId) {
        return rmService.roleMenuInfo(rmId);
    }

    /**
     * 添加
     *
     * @param rs RS
     * @return {@link ApiData}
     */
    @LogAnnotation("添加角色权限")
    @PostMapping(value = "/add")
    public ApiData add(@RequestBody RoleMenuVo rs) {
        return rmService.roleMenuAdd(rs);
    }

    /**
     * 更新
     *
     * @param rs RS
     * @return {@link ApiData}
     */
    @LogAnnotation("修改角色权限")
    @PutMapping("/update")
    public ApiData update(@RequestBody RoleMenuVo rs) {
        return rmService.roleMenuUpdate(rs);
    }
}

